Skip to content

docs(accessibility): add a page on the inert attribute#60

Merged
jdevalk merged 2 commits into
mainfrom
standards-scan/inert-attribute-2026-06-26
Jun 27, 2026
Merged

docs(accessibility): add a page on the inert attribute#60
jdevalk merged 2 commits into
mainfrom
standards-scan/inert-attribute-2026-06-26

Conversation

@jdevalk

@jdevalk jdevalk commented Jun 26, 2026

Copy link
Copy Markdown
Owner

What

Adds a new spec page — The inert attribute — under accessibility.

inert is a boolean global attribute that makes an element and its descendants non-interactive: removed from the tab order, removed from the accessibility tree, unfocusable, and skipped by find-in-page. It is the declarative replacement for the fragile focus-trap scripting authors used to write to keep keyboard and screen-reader focus inside an open dialog/menu/panel.

Why now

  • Baseline Widely Available since April 2023 — supported across all major browsers, so it is safe to recommend.
  • Genuinely uncovered: a repo-wide grep finds no existing page (or even a mention) of inert. It sits naturally in the focus-management cluster alongside keyboard-navigation, focus-indicators, and skip-links.
  • Closes a real accessibility gap: aria-hidden alone hides background content from screen readers but leaves it focusable, so keyboard focus still escapes an overlay. inert fixes both at once.

Status

recommended — the web platform contract does not break without it (a modal <dialog> opened with showModal() already makes the rest of the document inert automatically), but a modern site should use it for non-<dialog> overlays. Not required.

Primary sources

Also in this PR

  • Wires inert-attribute into relatedSlugs of keyboard-navigation, focus-indicators, skip-links, native-interactive-elements.
  • Changelog entry (added) for 2026-06-26.
  • OG images: the new per-page image plus the count-driven og-default / checklist / spec / accessibility-category images.

npm run build passes (151 pages indexed). Opened as a draft for maintainer review — not for auto-merge.

🤖 Generated with Claude Code

Adds src/content/spec/accessibility/inert-attribute.md documenting the
WHATWG HTML `inert` global attribute — Baseline Widely Available since
April 2023 — as the declarative replacement for focus-trap scripting when
an overlay is open. Status: recommended (the platform does not break
without it; modal <dialog> supplies it automatically). Wires inert-attribute
into the relatedSlugs of keyboard-navigation, focus-indicators, skip-links,
and native-interactive-elements; adds the changelog entry and OG images.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 26, 2026

Copy link
Copy Markdown

Deploying specification-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 063e3d3
Status: ✅  Deploy successful!
Preview URL: https://9aabe0cc.specification-website.pages.dev
Branch Preview URL: https://standards-scan-inert-attribu.specification-website.pages.dev

View logs

… for inert

find-in-page exclusion for inert subtrees is not yet in Safari (open WebKit
bug), so the unconditional claim and the verification step are softened.
'Baseline Widely Available since April 2023' conflated newly- and widely-
available; inert has been Baseline (interoperable) across browsers since
April 2023.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jdevalk jdevalk marked this pull request as ready for review June 27, 2026 11:33
@jdevalk

jdevalk commented Jun 27, 2026

Copy link
Copy Markdown
Owner Author

Reviewed and improved before merge:

  • find-in-page accuracy. inert's find-in-page exclusion (ignores_find_in_page) is not yet supported in Safari (open WebKit bug) — it shipped Chrome 124 / Firefox 120. Softened the unconditional claim in What it is and the Verification step so the page doesn't assert behaviour that fails in Safari.
  • Baseline wording. "Baseline Widely Available since April 2023" conflated newly available (April 2023, when Firefox 112 shipped — last core engine) with widely available. Changed to "Baseline across browsers since April 2023".

Verified the WHATWG/APG/MDN sources and the MDN canonical path via the MDN MCP server. Content, cross-links, changelog, and OG images all check out. The failing Internal links check is the known linkinator exit-13 tooling crash (non-blocking), not a broken link in this PR.

@jdevalk jdevalk merged commit 732d8e2 into main Jun 27, 2026
7 of 8 checks passed
@jdevalk jdevalk deleted the standards-scan/inert-attribute-2026-06-26 branch June 27, 2026 11:34
jdevalk added a commit that referenced this pull request Jun 27, 2026
After merging main (the inert page, #60), the total page count is 152;
regenerate the count-driven og-default / checklist / spec images so they
reflect it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jdevalk added a commit that referenced this pull request Jun 27, 2026
* add(foundations): CSS container queries page

Documents container-type/@container size queries (CSS Containment
Module Level 3) and the newer style queries (CSS Conditional Rules
Module Level 5). Status: recommended — a modern site should style
components by their container, but the platform works without it.

Size container queries have been Baseline widely available since
February 2023; style queries reached Baseline newly available in
May 2026. Wires relatedSlugs on anchor-positioning, css-containment,
and dynamic-viewport-units; adds the changelog entry and OG images.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(foundations): clarify size-query Baseline wording for container queries

'Baseline (widely available) since February 2023' conflated the newly-
available date (Feb 2023, Firefox 110 — last core engine) with widely-
available. Size queries became Baseline in Feb 2023 and are now widely
available; the style-query date (May 2026) was already correct.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore(og): regenerate count-driven OG images for 152 spec pages

After merging main (the inert page, #60), the total page count is 152;
regenerate the count-driven og-default / checklist / spec images so they
reflect it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jdevalk added a commit that referenced this pull request Jun 27, 2026
…lake (#62)

The links job shelled out to `npx linkinator`, whose CLI runs `await main()`
at the top level. On Node 22 the event loop can empty while that await is
still pending, aborting with exit 13 ("unsettled top-level await") after
fetching only `/` — a deterministic crash, not a broken link, that the
earlier retry-on-13 hardening (#58/#59) could not reliably paper over (it
still failed on PRs #60 and #61).

Replace the CLI with scripts/check-links.mjs, which drives linkinator's
LinkChecker class programmatically and resolves with `.then()`/process.exit
so our process can't hit the same foot-gun. Pin linkinator as a devDependency
for a stable version. Both jobs (internal --internal, external --config) use
it; the config's `skip` list maps to the API's `linksToSkip`.

Verified locally: builds, serves, and scans 1500 internal links (0 broken,
exit 0) with no exit-13 crash.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant